package com.ddstation.drug.service.impl;

/**
 * @Description :拆分字符
 * @Author : Fubb
 * @Date :Created 22:03 2020/3/3
 * @Modified by :
 **/
public class Splits {
    private String s;

    public Splits(String s) {
        this.s = s;
    }

    public Splits() {
        this("unknow");
    }

    public String[] getStr() {
        String[] str_string = s.split("[0-9.]");//  \d 为正则表达式表示[0-9]
        return str_string;
    }

    public String[] getNum() {
        String[] num_string = s.split("([\\u4e00-\\u9fa5]+|[a-zA-Zμɡ。])");  // \D 为正则表达式表示非数字
        String a = "";

//        for(String m : num_string){
//            a += m;
//        }
//
//        String[] num = a.split("");  //将分离出的重新保存在新数组num中不要直接用num_string，  因为在正则表达式对字符串进行选择时若前面的几个字符不符合要求但num_string数组中仍会存有其位置 是空格
//        String[] inte = new int[num.length];

//        for(int i =0; i < num.length; i++){
//            BigDecimal[i] = BigDecimal.valueOf(num[i]); //将该数组中的数字存入int数组
//        }

        return num_string;
    }

    //获取剂量单位
    public String getUnitStr() {
        String a = "";
        for (String n : getStr()) {
            a += n;
        }
        System.out.println(a);
        return a;
    }

    //获取剂量
    public String getNumStr() {
        String a = "";
        for (String n : getNum()) {
            a += n;
        }
        System.out.println(a);
        return a;
    }

    public static void main(String[] args) {
        Splits splits = new Splits("13.2盒");
        splits.getNumStr();
        splits.getUnitStr();
//        Pattern pattern1 = compile(".*[a-zA-z].*");
//        Pattern pattern2 = compile(".*[\\u4e00-\\u9fa5].*");
//        Matcher isAllNum = pattern1.matcher("13g");
//        Matcher isAllNum1 = pattern2.matcher("13");
//        System.out.println(isAllNum.matches());
//        System.out.println(isAllNum1.matches());

    }
}
